package io.github.wppli.domain.authenticate.repository;

import io.github.wppli.domain.authenticate.model.entity.UserEntity;

/**
 * @author li--jiaqiang 2024−12−25
 */
public interface IAuthenticateRepository {

    /**
     * 查询用户信息
     */
    void queryUserInfo();

    void registerWithPhoneNumber(String contactInformation);

    void registerWithEmail(String contactInformation);

    /**
     * 查询用户信息
     */
    UserEntity queryUserInfoWithEmail(String email);

    /**
     * 查询用户信息
     */
    UserEntity queryUserInfoWithPhoneNumber(String phoneNumber);

    void setUserPasswordWithEmail(String email, String encodedPassword);

    void setUserPasswordWithPhoneNumber(String phoneNumber, String encodedPassword);

    void bindEmailWithUsername(String email, String username);

    UserEntity queryUserInfoById(String userId);

    UserEntity queryUserInfoByUsername(String username);
}